package cn.agiledata.bank.linkbank.service;

import java.util.Date;

import cn.agiledata.bank.linkbank.logic.query.OrderQueryResponse;

/**
 * 支付系统订单查询服务
 * 
 * @author maxianbo
 * 
 */
public interface UnsQueryService {

    /**
     * 按时间段查询订单
     * 
     * @param accountId
     *            客户编号
     * @param beginTime
     *            起始时间，为空则不限起始时间
     * @param endTime
     *            结束时间，为空则不限结束时间
     * @param transStatus
     *            交易状态，取值范围："0"-待确认，"3"-交易成功，"4"-交易失败，null或"":不限，其它取值将始终返回0条订单
     * @param maxPerPage
     *            分页查询中每页的最大记录数，若该值小于等于0，则不进行分页查询
     * @param pageNo
     *            分页查询中要查询的页码序数，页码从1开始计数，若该值小于1，则视其为1
     * @return 订单查询结果
     */
    public OrderQueryResponse queryOrdersByTimeRange(String accountId,
            Date beginTime, Date endTime, String transStatus, int maxPerPage,
            int pageNo);

    /**
     * 按订单号段查询订单
     * 
     * @param accountId
     *            客户编号
     * @param beginOrderId
     *            起始订单号，为空则不限起始订单号
     * @param endOrderId
     *            结束订单号，为空则不限结束订单号
     * @param transStatus
     *            交易状态，取值范围："0"-待确认，"3"-交易成功，"4"-交易失败，null或"":不限，其它取值将始终返回0条订单
     * @param maxPerPage
     *            分页查询中每页的最大记录数，若该值小于等于0，则不进行分页查询
     * @param pageNo
     *            分页查询中要查询的页码序数，页码从1开始计数，若该值小于1，则视其为1
     * @return 订单查询结果
     */
    public OrderQueryResponse queryOrdersByOrderIdRange(String accountId,
            String beginOrderId, String endOrderId, String transStatus,
            int maxPerPage, int pageNo);

}